1 \documentclass[10pt,
a4paper,twoside
]{article
}
3 %---------------------------------------------------------------
4 \usepackage[utf8
]{inputenc}
5 \usepackage[spanish
]{babel
}
8 %---------------------------------------------------------------
12 %---------------------------------------------------------------
13 \title{Resumen de algoritmos para torneos de programación
}
17 %---------------------------------------------------------------
19 %---------------------------------------------------------------
22 \lstloadlanguages{C++
}
23 %---------------------------------------------------------------
25 %---------------------------------------------------------------
26 \definecolor{colorkeywords
}{rgb
}{0.5,
0.0,
0.3}
27 \definecolor{colorcomments
}{rgb
}{0.2,
0.4,
0.3}
28 \definecolor{colorstrings
}{rgb
}{0.2,
0.0,
1.0}
30 \lstset{keywordstyle=
\color{colorkeywords
}\bfseries}
31 \lstset{commentstyle=
\color{colorcomments
}\textit}
32 \lstset{stringstyle=
\color{colorstrings
}}
33 \lstset{numbers=left, numberstyle=
\tiny, stepnumber=
2, numbersep=
5pt
}
34 %---------------------------------------------------------------
36 %---------------------------------------------------------------
37 \section{Teoría de números
}
38 %---------------------------------------------------------------
41 %\lstset{backgroundcolor=listinggray,framerulecolor=blue}
42 %\lstset{backgroundcolor=listinggray,rulecolor=blue}
43 %\lstset{backgroundcolor=\color{listinggray},rulecolor=\color{blue}}
44 %\lstset{linewidth=\textwidth}
45 %\lstset{labelstep=10}
46 %\lstset{commentstyle=\textit, stringstyle=\upshape,stringspaces=false}
47 %\lstset{commentstyle=\textit, stringstyle=\upshape,showspaces=false}
48 \lstinputlisting[caption=Big mod
]{./src/number_theory/bigmod.cpp
}
50 \subsection{Criba de Eratóstenes
}
51 Marca los números primos en un arreglo. Algunos tiempos de ejecución:
55 SIZE & Tiempo (s) \\
[0.5ex
]
60 100000000 &
14.319 \\
[1ex
]
63 \lstinputlisting[caption=Criba de Eratóstenes
]{./src/number_theory/criba.cpp
}
65 \subsection{Divisores de un número
}
66 Este algoritmo imprime todos los divisores de un número (en desorden) en O($
\sqrt{n
}$).
67 Hasta
4294967295 (máximo
\textit{unsigned long
}) responde instantaneamente. Se puede
68 forzar un poco más usando
\textit{unsigned long long
} pero más allá de $
10^
{12}$ empieza a
71 \lstinputlisting[caption=Divisores
]{./src/number_theory/divisores.cpp
}
74 \section{Programación dinámica
}
75 \subsection{Longest common subsequence
}
76 \lstinputlisting[caption=Longest common subsequence
]{./src/dp/lcs.cpp
}
80 %---------------------------------------------------------------